home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / ilisp / ilisp-acl.el.z / ilisp-acl.el
Encoding:
Text File  |  1998-05-21  |  3.0 KB  |  87 lines

  1. ;;; -*- Mode: Emacs-Lisp -*-
  2.  
  3. ;;; ilisp-acl.el --
  4.  
  5. ;;; This file is part of ILISP.
  6. ;;; Version: 5.8
  7. ;;;
  8. ;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell
  9. ;;;               1993, 1994 Ivan Vasquez
  10. ;;;               1994, 1995, 1996 Marco Antoniotti and Rick Busdiecker
  11. ;;;               1996 Marco Antoniotti and Rick Campbell
  12. ;;;
  13. ;;; Other authors' names for which this Copyright notice also holds
  14. ;;; may appear later in this file.
  15. ;;;
  16. ;;; Send mail to 'ilisp-request@naggum.no' to be included in the
  17. ;;; ILISP mailing list. 'ilisp@naggum.no' is the general ILISP
  18. ;;; mailing list were bugs and improvements are discussed.
  19. ;;;
  20. ;;; ILISP is freely redistributable under the terms found in the file
  21. ;;; COPYING.
  22.  
  23.  
  24. ;;;
  25. ;;; ILISP Allegro Common Lisp dialect definition
  26. ;;;
  27.  
  28. ;;; Various patches provided by Kimball Collins
  29. ;;; <kpc@ptolemy-ethernet.arc.nasa.gov>
  30.  
  31.  
  32. ;;;%%%Allegro
  33. (defvar ilisp-allegro-init-file "allegro.lisp")
  34.  
  35. (defun allegro-check-prompt (old new)
  36.   "Compare the break level printed at the beginning of the prompt."
  37.   (let* ((old-level (if (and old (eq 1 (string-match "[0-9]+" old)))
  38.              (string-to-int (substring old 1))
  39.              0))
  40.       (new-level (if (eq 1 (string-match "[0-9]+" new))
  41.              (string-to-int (substring new 1))
  42.              0)))
  43.     (<= new-level old-level)))
  44.  
  45. ;;;
  46. (defdialect allegro "Allegro Common LISP"
  47.   clisp
  48.   (ilisp-load-init 'allegro ilisp-allegro-init-file)
  49.   (setq comint-fix-error ":pop"
  50.     ilisp-reset ":reset"
  51.     comint-continue ":cont"
  52.     comint-interrupt-regexp  "Error: [^\n]* interrupt\)")
  53.   (setq comint-prompt-status 
  54.     (function (lambda (old line)
  55.             (comint-prompt-status old line 'allegro-check-prompt))))
  56.   ;; <cl> or package> at top-level
  57.   ;; [0-9c] <cl> or package> in error
  58.   ;; (setq comint-prompt-regexp "^\\(\\[[0-9]*c*\\] \\|\\)\\(<\\|\\)[^>]*> ")
  59.   ;; (setq comint-prompt-regexp "^\\(\\[[0-9]+i?c?\\] \\|\\[step\\]\\)?\\(<?[-A-Za-z]* ?[0-9]*?>\\|[-A-Za-z0-9]+([0-9]+):\\) ")
  60.  
  61.   ;; Patch by kpc 94/8/30: allow prompts that look like this:
  62.   ;; USER(23): USER(23):
  63.   (setq comint-prompt-regexp "^\\(\\(\\[[0-9]+i?c?\\] \\|\\[step\\] \\)?\\(<?[-A-Za-z]* ?[0-9]*?>\\|[-A-Za-z0-9]+([0-9]+):\\) \\)+")
  64.    
  65.   (setq ilisp-error-regexp
  66.     "\\(ILISP:[^\"]*\\)\\|\\(Error:[^\n]*\\)\\|\\(Break:[^\n]*\\)")
  67.  
  68.   (setq ilisp-binary-command "excl:*fasl-default-type*")
  69.   (setq ilisp-source-types (append ilisp-source-types '(("any"))))
  70.  
  71.   (setq ilisp-find-source-command 
  72.     "(ILISP:ilisp-source-files \"%s\" \"%s\" \"%s\")")
  73.   (setq ilisp-init-binary-command
  74.     ;; Patch provided by kpc 94/8/30: distinguish among
  75.     ;; fasl-incompatible allegro versions
  76.     "(let ((ext (or #+m68k \"68fasl\"
  77.                 #+sparc \"sfasl\"
  78.                 #+iris4d \"ifasl\"
  79.                         #+dec3100 \"pfasl\"
  80.                         excl:*fasl-default-type*)))
  81.            #+allegro-v4.0 (setq ext (concatenate 'string ext \"40\"))
  82.            #+allegro-v4.1 (setq ext (concatenate 'string ext \"41\"))
  83.            #+allegro-v4.2 (setq ext (concatenate 'string ext \"42\"))
  84.            ext)"))
  85. (if (not allegro-program) (setq allegro-program "cl"))
  86.  
  87.